//
//  XFPageControllerManager.h
//  Test
//
//  Created by ukongm on 17/5/17.
//  Copyright © 2017年 ukongm. All rights reserved.
//

#import <UIKit/UIKit.h>



@protocol XFSubPageControllerDelegate <NSObject>

/** 子视图的高度 */
@property(nonatomic,assign)CGFloat height;
/** id (一般用于请求数据的id)*/
@property(nonatomic,strong)NSString* uid;

@end


@protocol XFPageControllerManagerDelegate <NSObject>

/** 滚动视图 (所有的pageVC都会添加在这个视图上)*/
@property(nonatomic,strong)UIScrollView* scrollView;

@optional
/**
 在创建的同时走一遍这个方法
 
 @param vc    对应的控制器
 @param index 控制器对应的索引
 */
- (void)createViewController:(UIViewController<XFSubPageControllerDelegate>*)vc atIndex:(NSInteger)index;

@end


/**
 分页新闻类型的管理控制器
 */
@interface XFPageControllerManager : NSObject

/**  需要被管理的控制器，接受代理 */
@property(nonatomic,weak)UIViewController<XFPageControllerManagerDelegate>* vc;
/** 所有被管理的子视图的名字（字符串形式）,请务必保证所有的子pageController 都接受了XFSubPageControllerDelegate代理 */
@property(nonatomic,strong)NSArray* pages;

/**
 根据上面的设置去刷新视图(该方法会将子视图删除重新创建添加)
 */
- (void)resume;

/**
 根据上面的设置去刷新视图(该方法只是会重新走一遍代理方法,不会重新创建添加) , 有没有创建的控制器的话，会直接全部创建
 */
- (void)reload;

/**
 当前显示到某个视图控制器的位置，如果该位置上的视图控制器没有被创建，则创建

 @param index 对应的索引
 */
- (void)showForIndex:(NSInteger)index;
- (void)showForIndex:(NSInteger)index animation:(BOOL)animation;


/**
 创建一个视图控制器，如果被创建了，该方法无效（不会重新创建）

 @param index 视图的位置
 */
- (void)managerForIndex:(NSInteger)index;


@end
